package cn.edu.gxu.oas.module.run.controller.admin.record.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import jakarta.validation.constraints.*;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

@Schema(description = "管理后台 - 跑步记录新增/修改 Request VO")
@Data
public class RecordSaveReqVO {

    @Schema(description = "记录ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "7184")
    private Long id;

    @Schema(description = "学生ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "13561")
    @NotNull(message = "学生ID不能为空")
    private Long studentId;

    @Schema(description = "开始时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "开始时间不能为空")
    private LocalDateTime startTime;

    @Schema(description = "结束时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "结束时间不能为空")
    private LocalDateTime endTime;

    @Schema(description = "持续时间(秒)", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "持续时间(秒)不能为空")
    private Integer duration;

    @Schema(description = "跑步距离(km)", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "跑步距离(km)不能为空")
    private BigDecimal distance;

    @Schema(description = "配速(分钟/公里)")
    private String pace;

    @Schema(description = "消耗卡路里(kcal)")
    private Integer calorie;

    @Schema(description = "获得积分", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "获得积分不能为空")
    private Integer points;

    @Schema(description = "路线数据(JSON格式)")
    private String routeData;

    @Schema(description = "状态(0-有效，1-无效)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "状态(0-有效，1-无效)不能为空")
    private Integer status;

    @Schema(description = "备注", example = "随便")
    private String remark;

}